package com.ruoyi.college.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 一级学科管理对象 first_level_subject
 * 
 * @author ruoyi
 * @date 2025-07-30
 */
public class FirstLevelSubject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 唯一标识 */
    private String id;

    /** 所属学院ID */
    @Excel(name = "所属学院ID")
    private String collegeId;

    /** 一级学科代码 */
    @Excel(name = "一级学科代码")
    private String firstSubjectCode;

    /** 一级学科名称 */
    @Excel(name = "一级学科名称")
    private String firstSubjectName;

    /** 一级学科英文名称 */
    @Excel(name = "一级学科英文名称")
    private String subjectNameEnglish;

    /** 一级学科分类 */
    @Excel(name = "一级学科分类")
    private Long subjectCategory;

    /** 学科负责人id */
    @Excel(name = "学科负责人id")
    private String leaderId;

    /** 附件存储路径 */
    @Excel(name = "附件存储路径")
    private String attachmentPath;

    /** 学科简介 */
    @Excel(name = "学科简介")
    private String description;

    /** 博士授予权(1:有 0:无) */
    @Excel(name = "博士授予权(1:有 0:无)")
    private Long hasDoctorGrant;

    /** 硕士授予权(1:有 0:无) */
    @Excel(name = "硕士授予权(1:有 0:无)")
    private Long hasMasterGrant;

    /** 重点学科类型 */
    @Excel(name = "重点学科类型")
    private Long keySubjectType;

    /** 学科评估结果(如A+,B-) */
    @Excel(name = "学科评估结果(如A+,B-)")
    private String evaluationResult;

    /** 学科设立年份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "学科设立年份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date establishYear;

    /** 学科状态：1(启用)，0（停用） */
    @Excel(name = "学科状态：1(启用)，0", readConverterExp = "停=用")
    private Long status;

    /** 版本号(乐观锁) */
    @Excel(name = "版本号(乐观锁)")
    private Long version;

    /** 创建人id */
    @Excel(name = "创建人id")
    private String createId;

    /** 更新人id */
    @Excel(name = "更新人id")
    private String updateId;

    public void setId(String id) 
    {
        this.id = id;
    }

    public String getId() 
    {
        return id;
    }

    public void setCollegeId(String collegeId) 
    {
        this.collegeId = collegeId;
    }

    public String getCollegeId() 
    {
        return collegeId;
    }

    public void setFirstSubjectCode(String firstSubjectCode) 
    {
        this.firstSubjectCode = firstSubjectCode;
    }

    public String getFirstSubjectCode() 
    {
        return firstSubjectCode;
    }

    public void setFirstSubjectName(String firstSubjectName) 
    {
        this.firstSubjectName = firstSubjectName;
    }

    public String getFirstSubjectName() 
    {
        return firstSubjectName;
    }

    public void setSubjectNameEnglish(String subjectNameEnglish) 
    {
        this.subjectNameEnglish = subjectNameEnglish;
    }

    public String getSubjectNameEnglish() 
    {
        return subjectNameEnglish;
    }

    public void setSubjectCategory(Long subjectCategory) 
    {
        this.subjectCategory = subjectCategory;
    }

    public Long getSubjectCategory() 
    {
        return subjectCategory;
    }

    public void setLeaderId(String leaderId) 
    {
        this.leaderId = leaderId;
    }

    public String getLeaderId() 
    {
        return leaderId;
    }

    public void setAttachmentPath(String attachmentPath) 
    {
        this.attachmentPath = attachmentPath;
    }

    public String getAttachmentPath() 
    {
        return attachmentPath;
    }

    public void setDescription(String description) 
    {
        this.description = description;
    }

    public String getDescription() 
    {
        return description;
    }

    public void setHasDoctorGrant(Long hasDoctorGrant) 
    {
        this.hasDoctorGrant = hasDoctorGrant;
    }

    public Long getHasDoctorGrant() 
    {
        return hasDoctorGrant;
    }

    public void setHasMasterGrant(Long hasMasterGrant) 
    {
        this.hasMasterGrant = hasMasterGrant;
    }

    public Long getHasMasterGrant() 
    {
        return hasMasterGrant;
    }

    public void setKeySubjectType(Long keySubjectType) 
    {
        this.keySubjectType = keySubjectType;
    }

    public Long getKeySubjectType() 
    {
        return keySubjectType;
    }

    public void setEvaluationResult(String evaluationResult) 
    {
        this.evaluationResult = evaluationResult;
    }

    public String getEvaluationResult() 
    {
        return evaluationResult;
    }

    public void setEstablishYear(Date establishYear) 
    {
        this.establishYear = establishYear;
    }

    public Date getEstablishYear() 
    {
        return establishYear;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    public void setCreateId(String createId) 
    {
        this.createId = createId;
    }

    public String getCreateId() 
    {
        return createId;
    }

    public void setUpdateId(String updateId) 
    {
        this.updateId = updateId;
    }

    public String getUpdateId() 
    {
        return updateId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("collegeId", getCollegeId())
            .append("firstSubjectCode", getFirstSubjectCode())
            .append("firstSubjectName", getFirstSubjectName())
            .append("subjectNameEnglish", getSubjectNameEnglish())
            .append("subjectCategory", getSubjectCategory())
            .append("leaderId", getLeaderId())
            .append("attachmentPath", getAttachmentPath())
            .append("description", getDescription())
            .append("hasDoctorGrant", getHasDoctorGrant())
            .append("hasMasterGrant", getHasMasterGrant())
            .append("keySubjectType", getKeySubjectType())
            .append("evaluationResult", getEvaluationResult())
            .append("establishYear", getEstablishYear())
            .append("status", getStatus())
            .append("version", getVersion())
            .append("createId", getCreateId())
            .append("updateId", getUpdateId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
